package com.shujia.mllib

import org.apache.spark.mllib.linalg
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.regression.LabeledPoint

object Demo1Vector {
  def main(args: Array[String]): Unit = {

    // 稠密向量
    val vector: linalg.Vector = Vectors.dense(Array(0.1, 0.2, 0.4))

    println(vector)


    //稀疏向量
    val vector1: linalg.Vector = Vectors.sparse(100, Array(1, 3), Array(0.2, 0.4))

    println(vector1)

    /**
      * 如果大部分的位置是0，使用稀疏向量便是更节省空间
      *
      */
    println(vector1.toDense)

    /**
      * LabeledPoint  代表一条标记的数据
      * 1.0  代表y
      * 向量代表的时候多个x
      *
      */

    val point: LabeledPoint = LabeledPoint(1.0, Vectors.sparse(2, Array(1, 4), Array(0.1, 0.2)))

    println(point)

  }
}
